package com.romotc.qqrobot.webqq.thread;

import org.json.JSONObject;

import com.romotc.json.tools.JsonObjectUtil;
import com.romotc.qqrobot.bean.QQLogedin;
import com.romotc.qqrobot.webqq.qqInterfaceCall.Get_msg_tip_InterCall;
import com.romotc.qqrobot.webqq.qqInterfaceCall.Poll2_InterCall;
import com.romotc.qqrobot.webqq.qqInterfaceCall.dataProcessor.DateProcessor;
import com.romotc.scache.RequestSpy;

/**
 * Get_msg_tip线程：定时1分钟执行一次get_msg_tip请求
 * 用户子号或者机器人超级QQ保持在线状态之用
 * @author Administrator
 *
 */
public class GetMsgTipThread extends Thread {

	/**
	 * 发送get_msg_tip的QQ号码
	 */
	private String qqNum;
	public boolean active = true;
	public GetMsgTipThread(String qqNum) {
		this.qqNum = qqNum;
	}
	
	@Override
	public void run() {
		Get_msg_tip_InterCall tipCall = Get_msg_tip_InterCall.getInstance();
		JSONObject reqData = new JSONObject();
		QQLogedin curQQ = null;
		while(active && (curQQ = QQLogedin.getCurQqLogedIn(qqNum)) != null) {
			//清理之前请求的信息
			JsonObjectUtil.cleanJsonObject(reqData);
			
			try {
				reqData = tipCall.call(curQQ, reqData, new DateProcessor() {

					@Override
					public JSONObject processResponse(QQLogedin loginQQ,
							RequestSpy rqSpy, JSONObject reqDataObj)
							throws Exception {
						
						//rqSpy.logMe();//执行日志队列
//						if(loginQQ != null)
//							loginQQ.modifyThreadDown(loginQQ.taskRunPreMin);//task中一分钟运行X次， getMsgTip 1分钟运行一次 ；task中-1 这里需要加X
						
						return reqDataObj;
					}
					
				});
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			

			
			try {
				Thread.sleep(60000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}//一分钟请求一次
		}
	}

}
